import { Module } from '@nestjs/common';
import { OptionalProvidersV2Controller } from './controller';
import { AppService } from './service';
import { IHttpClient } from './interface';

// 自定义 HTTP 客户端实现
class CustomHttpClient implements IHttpClient {
    async get(url: string) {
        return {
            data: 'Custom response',
            source: 'CustomHttpClient',
            url
        };
    }

    async post(url: string, data: any) {
        // 实现略
    }
}

// 定义一个动态模块，可以接受配置
@Module({
    imports: [],
    controllers: [OptionalProvidersV2Controller],
    providers: [
        AppService,
        // 根据需要选择是否提供 HTTP_OPTIONS
        // 情况1: 不提供 - 将使用默认实现
        // 情况2: 提供自定义实现
        {
            provide: 'HTTP_OPTIONS',
            useClass: CustomHttpClient,
        }
    ],
})
export class OptionalProvidersV2Module { }